<%@ Page Language="C#" MasterPageFile="~/MasterPages/Learning.Master" AutoEventWireup="true" CodeBehind="Gadgets.aspx.cs" Inherits="Mindscape.BackgroundMotion.Website.Learn.Gadgets" Title="Code: Learn about Gadgets" %>
<asp:Content ID="Content3" ContentPlaceHolderID="BodyContent" runat="server">
    <h2>Windows Sidebar and Sidebar Gadgets</h2>
    
    <p>
    The Windows Sidebar is the application which allows users to displays gadgets on the sidebar itself and on the Windows desktop. The sidebar supports a number of user configuration options, including remaining behind other windows and being hidden completely. The sidebar is also the method by which users manage gadgets through a Gadget gallery. 
    The Gadgets themselves are self contained HTML applications which uses JavaScript to provide functional extensibility.
    </p>
    
    <div align="center">
        <a href="/Learn/PlayVideo.aspx?v=Nugget3" target="page" onClick="window.open('','page','toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=450,height=350,titlebar=yes')"><img border="0" src="/Images/Dev/VideoNugget3.jpg" /></a><br />
        <p>Jeremy gives us the low down on Vista Sidebar Gadgets</p>    
    </div>
    <br />
    
    <h2>How do I build Gadgets?</h2>
    
    <p>
        A gadget is structured by building an HTML application in the following manner:<br />
        <img src="/Images/Dev/GadgetAnatomy.jpg"/>
    </p>
     
    <ul>
        <li>The Manifest declares the metadata for the Gadget and the primary HTML file to be used for the interface</li>
        <li>The interface lays out the presentation markup</li>
        <li>CSS and Images are resources that can be used with the markup</li>
        <li>JavaScript allows us to build the functionality into our Gadgets</li>
        <li>We can call out to ActiveX to extend the functionality of our Gadgets</li>
    </ul>
    
    <p>
    The easiest way to get started with a Gadget is by starting with an existing template. Try <a href="http://turtle.net.nz/blog/post/DevelopingSidebarGadgets">this Hello World template</a> to get started.
    </p>
    
    <h2>What could I build?</h2>
    
    <p>
    There are 2 basic purposes for a Gadget - Informational and Functional;
    </p>
    
    <ul>
    <li><b>Informative</b> Gadgets will present source information to be presented through the Gadget interface. This data could come from the local computer environment or from a network resource.</li>
    <li><b>Functional</b> Gadgets will allow users to interact with their environment either locally or through a remote service. </li>
    </ul>

    <p>
    Advanced functionality can be achieved by integrating with .NET through COM Interop.
    </p> 
    
    <h2>Where can I find out more information?</h2>
    
    <ul>
        <li><a href="http://microsoftgadgets.com/Sidebar/DevelopmentOverview.aspx">MicrosoftGadgets.com has a good overview</a> on Sidebar Gadget development</li>
        <li>There is some <a href="http://msdn2.microsoft.com/en-gb/library/aa965850.aspx">good documentation on MSDN</a></li>
    </ul>
    
</asp:Content>
